#pragma once
#include "stdafx.h"
#include "Operator.h"
#include "WindowSynopsis.h"
#include "QueueEntity.h"
#include <boost/shared_ptr.hpp>
class RangeWindowOperator:public Operator
{
private:
	const Timeunit rangeWindowSize;
	
	
	boost::shared_ptr<WindowSynopsis> windowSynopsis; 
	Timestamp lastInputTimestamp;
	
	void expireElement(Timestamp timestamp);
	Element blockedElement;
	void dealWithBlock(void);
public:
	RangeWindowOperator(Timeunit timeRange);  
	~RangeWindowOperator(void);
	
	void execution(int executionTimes);
};

